package cn.lut.ba02;

import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;

/**
 * @user:dell
 * @date:2020年10月27 17:27
 */

/**
 * @Component: 创建对象的， 等同于<bean>的功能
 *  属性：value 就是对象的名称，也就是bean的id值，
 * value的值是唯一的，创建的对象在整个spring容器中就一个
 * 位置：在类的上面
 * pring中和@Component功能一致，创建对象的注解还有：
 *    1.@Repository（用在持久层类的上面） : 放在dao的实现类上面，
 *                表示创建dao对象，dao对象是能访问数据库的。
 *   2.@Service(用在业务层类的上面)：放在service的实现类上面，
 *               创建service对象，service对象是做业务处理，可以有事务等功能的。
 *    3.@Controller(用在控制器的上面)：放在控制器（处理器）类的上面，创建控制器对象的，
 *                控制器对象，能够接受用户提交的参数，显示请求的处理结果。
 *    以上三个注解的使用语法和@Component一样的。 都能创建对象，但是这三个注解还有额外的功能。
 *
 *  @Repository，@Service，@Controller是给项目的对象分层的。
 */


    @Component("ValueStudent")
public class Student {
    /**
     * @Value: 简单类型的属性赋值
     *   属性： value 是String类型的，表示简单类型的属性值
     *   位置： 1.在属性定义的上面，无需set方法，推荐使用。
     *         2.在set方法的上面
     */
    @Value("路明非")
    private String name;
    @Value("23")
    private int age;

    public Student() {
        System.out.println("呜呜呜");
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }

    @Override
    public String toString() {
        return "Student{" +
                "name='" + name + '\'' +
                ", age=" + age +
                '}';
    }
}
